package org.demo.kong.api;

import org.demo.kong.dto.request.CreateOauth2TokenReq;
import org.demo.kong.dto.request.Oauth2ClientCredentialsReq;
import org.demo.kong.dto.request.Oauth2TokenReq;
import org.demo.kong.dto.request.RefreshOauth2TokenReq;
import org.demo.kong.entity.Oauth2Token;
import retrofit2.Call;
import retrofit2.http.*;

import java.io.Serializable;

/**
 * 作者： lzw<br/>
 * 创建时间：2019-01-15 17:09 <br/>
 */
public interface Oauth2Api {
    /**
     * 创建 Oauth2 Token
     *
     * @param apiPath 服务地址前缀
     */
    @POST("/{apiPath}/oauth2/token")
    Call<Oauth2Token> createOauth2Token(@Path("apiPath") String apiPath, @Body CreateOauth2TokenReq createOauth2TokenReq);

    /**
     * 创建 Oauth2 Token
     *
     * @param apiPath 服务地址前缀
     */
    @POST("/{apiPath}/oauth2/token")
    Call<Oauth2Token> createOauth2TokenABC(@Path("apiPath") String apiPath, @Body Oauth2ClientCredentialsReq oauth2TokenReq);


    /**
     * 刷新 Oauth2 Token
     *
     * @param apiPath 服务地址前缀
     */
    @POST("/{apiPath}/oauth2/token")
    Call<Oauth2Token> refreshOauth2Token(@Path("apiPath") String apiPath, @Body RefreshOauth2TokenReq refreshOauth2TokenReq);
}
